home *** CD-ROM | disk | FTP | other *** search
Wrap
(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=m a x Title=Sharereactor.ru Description=Import data & picture from Sharereactor.ru Site=Sharereactor.ru Language=RU Version=1.01 Requires=3.5.0 Comments=Based on the script made for version 3.x by AIG corrected by KoSeA & Leonid_Z & m a x License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GetInfo=1 [Options] ***************************************************) program Sharereactorru; var MovieName: string; function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin result := i; Break; end; end; procedure AnalyzePage(Address: string); var Page: TStringList; LineNr: Integer; begin Page := TStringList.Create; Page.Text := GetPage(Address); PickTreeClear; LineNr := 0; LineNr := FindLine('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', Page, LineNr); if LineNr > -1 then begin PickTreeAdd('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', ''); AddMoviesTitles(Page, LineNr); end; if PickTreeExec(Address) then begin Page.Free; Page := TStringList.Create; Page.Text := GetPage(Address); SetField(fieldURL, Address); AnalyzeMoviePage(Page) end Page.Free; end; procedure AnalyzeMoviePage(Page: TStringList); var Line, Value, value1, cuchr: string; LineNr, i: Integer; BeginPos, EndPos: Integer; begin // Original Title & TranslatedTitle & Year //╨≤±±Ωεσ φατΓαφΦσ LineNr := FindLine('<td><H1>', Page, 0); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('<H1>', Line); if BeginPos > 0 then BeginPos := BeginPos + 4; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos-22 ); HTMLDecode(Value); SetField(fieldTranslatedTitle, Value); end //╬≡ΦπΦφαδⁿφεσ φατΓαφΦσ LineNr := FindLine(' ', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); HTMLDecode(Value); SetField(fieldOriginalTitle, Value); end //├εΣ Γ√⌡εΣα LineNr := FindLine(' ', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); SetField(fieldYear, Value); end; //╞αφ≡ LineNr := FindLine('document.write', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('("', Line); if BeginPos > 0 then BeginPos := BeginPos + 2; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos-11 ); HTMLDecode(Value); SetField(fieldCategory, Value); end; //╨σµΦ±cσ≡ LineNr := FindLine(' ', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); HTMLDecode(Value); SetField(fieldDirector,Value); end //└Ω≥σ≡√ LineNr := FindLine(' ', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); HTMLDecode(Value); HTMLRemoveTags(Value); SetField(fieldActors,value); end; //╬∩Φ±αφΦσ LineNr := FindLine(' ', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); HTMLDecode(Value); SetField(fieldDescription, Value); end; //╧≡εΣ■±±σ≡ LineNr := FindLine(' ', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); HTMLDecode(Value); SetField(fieldProducer, Value); end; ////╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ // LineNr := FindLine(' ', Page, LineNr+1); // Line := Page.GetString(LineNr); // if LineNr > -1 then // begin // BeginPos := pos('</B>', Line); // if BeginPos > 0 then // BeginPos := BeginPos + 5; // EndPos := Length(Line); // Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); // HTMLDecode(Value); // SetField(fieldLength, Value); // end; //▀τ√Ω LineNr := FindLine('▀τ√Ω', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); HTMLDecode(Value); SetField(fieldLanguages, Value); end; //╩ε∞∞σφ≥α≡ΦΦ LineNr := FindLine('╧≡Φ∞σ≈αφΦ ', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B>', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := Length(Line); Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); HTMLDecode(Value); SetField(fieldComments, Value); end; //╬÷σφΩα LineNr := FindLine('╬÷σφΩα ∩εδⁿτεΓα≥σδσΘ:', Page, LineNr+1); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('</B> ', Line); if BeginPos > 0 then BeginPos := BeginPos + 5; EndPos := pos('/10', Line); Value := copy(Line, BeginPos, EndPos - BeginPos ); SetField(fieldRating, Value); // IntToStr(Round(StrToFloat(Value)))); end; ////─ε∩εδφΦ≥σδⁿφε // LineNr := FindLine(' ', Page, LineNr+1); // Line := Page.GetString(LineNr); // if LineNr > -1 then // begin // BeginPos := pos('</B>', Line); // if BeginPos > 0 then // BeginPos := BeginPos + 5; // EndPos := Length(Line); // Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); ////╘ε≡∞α≥ // LineNr := FindLine(' ', Page, LineNr+1); // Line := Page.GetString(LineNr); // if LineNr > -1 then // begin // BeginPos := pos('</B>', Line); // if BeginPos > 0 then // BeginPos := BeginPos + 5; // EndPos := Length(Line); // Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); // LineNr := FindLine(' ', Page, LineNr+1); // Line := Page.GetString(LineNr); // if LineNr > -1 then // begin // BeginPos := pos('</B>', Line); // if BeginPos > 0 then // BeginPos := BeginPos + 5; // EndPos := Length(Line); // Value := Value+ ', ' + copy(Line, BeginPos, EndPos - BeginPos+1 ); // value:=''; // HTMLDecode(Value); // SetField(fieldVideoFormat, Value); // end; // end; // end; ////╩α≈σ±≥Γε Ωα≡≥ΦφΩΦ // LineNr := FindLine(' ', Page, LineNr+1); // Line := Page.GetString(LineNr); // if LineNr > -1 then // begin // BeginPos := pos('</B>', Line); // if BeginPos > 0 then // BeginPos := BeginPos + 5; // EndPos := Length(Line); // Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); // value:=''; // HTMLDecode(Value); // SetField(fieldResolution, Value); // end; //└≤ΣΦε // LineNr := FindLine(' ', Page, LineNr+1); // Line := Page.GetString(LineNr); // if LineNr > -1 then // begin // BeginPos := pos('</B>', Line); // if BeginPos > 0 then // BeginPos := BeginPos + 5; // EndPos := Length(Line); // Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); // value:=''; // HTMLDecode(Value); // SetField(fieldAudioFormat, Value); // end; ////╨ατ∞σ≡ // LineNr := FindLine(' ', Page, LineNr+1); // Line := Page.GetString(LineNr); // if LineNr > -1 then // begin // BeginPos := pos('</B>', Line); // if BeginPos > 0 then // BeginPos := BeginPos + 5; // EndPos := Length(Line); // Value := copy(Line, BeginPos, EndPos - BeginPos+1 ); // value:=''; // HTMLDecode(Value); // SetField(fieldSize, Value); // end; //╩α≡≥ΦφΩα LineNr := FindLine('/covers/', Page, 0); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('/covers/', Line); if BeginPos > 0 then BeginPos := BeginPos; // + 0; EndPos:=pos('.jpg', Line); Value := copy(Line, BeginPos, EndPos - BeginPos+4 ); Value := 'http://sharereactor.ru'+Value; GetPicture(Value); end else begin LineNr := FindLine('/images/', Page, 0); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('http://', Line); if BeginPos > 0 then BeginPos := BeginPos; //+ 1; EndPos:=pos('.jpg', Line); Value := copy(Line, BeginPos, EndPos - BeginPos+4 ); GetPicture(Value); end else begin LineNr := FindLine('covers/', Page, 0); Line := Page.GetString(LineNr); if LineNr > -1 then begin BeginPos := pos('http://', Line); if BeginPos > 0 then BeginPos := BeginPos; //+ 1; EndPos:=pos('.jpg', Line); Value := copy(Line, BeginPos, EndPos - BeginPos+4 ); GetPicture(Value); end end; end; // DisplayResults; end; procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer); var Line: string; MovieTitle, MovieAddress: string; StartPos,EndPos,AddPos: Integer; begin LineNr := LineNr + 10; Line := Page.GetString(LineNr); StartPos := pos('<A', Line); repeat if StartPos > 0 then begin StartPos:=StartPos+8; EndPos := Length(Line); Line:=copy(Line,StartPos,EndPos - StartPos); MovieAddress := copy(Line, 2, pos('">', Line) -2 ); StartPos := pos('">', Line) + 2; MovieTitle := copy(Line, StartPos, pos('</A>', Line) - StartPos); HTMLDecode(Movietitle); PickTreeAdd(MovieTitle, 'http://sharereactor.ru' + MovieAddress); end; StartPos := Length(Movietitle)+StartPos; StartPos := pos('<A', Line); until StartPos <= 0; end; begin if CheckVersion(3,5,0) then begin MovieName := GetField(fieldOriginalTitle); if MovieName = '' then MovieName := GetField(fieldTranslatedTitle); if Input('Sharereactor.ru Import', '┬ΓσΣΦ≥σ φατΓαφΦσ ⌠Φδⁿ∞α:', MovieName) then begin AnalyzePage('http://sharereactor.ru/cgi-bin/mzsearch.cgi?search='+UrlEncode(MovieName)); end; end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)'); end.